package com.mayuanfei.service;

import com.aizuda.snailjob.client.core.annotation.Retryable;
import com.aizuda.snailjob.client.core.retryer.RetryType;
import com.mayuanfei.common.constant.SceneConstant;

/**
 * TODO 类描述
 *
 * @author 老马
 * @date 2025-04-07 11:13
 */
public interface LocalRetryService {


    /**
     * 本地重试
     * @param params 参数
     */
    void localRetry(String params);


    @Retryable(scene = SceneConstant.LOCAL_RETRY+"1", retryStrategy = RetryType.ONLY_LOCAL)
    void localRetryWithAnnotation(String params);

    void localRetryNoException(String params);

    void localRetryMyMethod(String params);

    void localPropagation(String params);

    void localRetryIncludeException(String params);

    void localRetryExcludeException(String params);

    void localRetryPropagation(String params);

    void localRetryCompleteCallback(String params);

}